package com.bgs.travelapp.login.controller;

import com.bgs.travelapp.login.service.LoginService;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.user.entity.UserEntity;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 登录模块（前端展示）
 * lzy 2022-7-26 08点47分
 */
@RestController
@RequestMapping("/login")
@CrossOrigin
public class LoginController {

    @Autowired
    LoginService loginService;

    /**
     * 注册用户（前端展示）
     * todo 白
     * lzy 2022-8-2 21点06分
     * @param userEntity
     * @param code
     * @return
     */
    @PostMapping("/registerUser")
    public CommonResult registerUser(UserEntity userEntity,String code){
        return loginService.registerUser(userEntity,code);
    }

    /**
     * 注册获取验证码（前端展示）
     * todo 白
     * lzy 2022-8-2 20点43分
     * @param mail
     * @return
     */
    @GetMapping("/sendCodeByQQMailRe")
    public void sendCodeByQQMailRe(String mail){
        loginService.sendCodeByQQMailRe(mail);
    }

    /**
     * 校验邮箱号是否被绑定（前端展示）
     * todo 白
     * lzy 2022-8-2 20点20分
     * @param mail
     * @return
     */
    @GetMapping("/checkMail")
    public CommonResult checkMail(String mail){
        return loginService.checkMail(mail);
    }

    /**
     * 根据账号密码登录（前端展示）
     * todo 白
     * lzy 2022-7-26 11点07分
     * @param loginName
     * @param password
     * @return
     */
    @GetMapping("/loginByUser")
    public CommonResult loginByUser(String loginName,String password){
        return loginService.loginByUser(loginName,password);
    }

    /**
     * 根据手机号验证登录（前端展示）
     * todo 白
     * lzy 2022-7-26 09点05分
     * @param phone
     * @return
     */
    @GetMapping("/loginByPhone")
    public CommonResult loginByPhone(String phone){
        return CommonResult.ok(loginService.loginByPhone(phone));
    }

    /**
     * 根据手机号发送验证码 （前端展示）
     * todo 白
     * lzy 2022-7-26 08点47分
     * @param phone
     * @return
     */
    @GetMapping("/sendCodeByPhone")
    public void sendCodeByPhone(String phone){
        loginService.sendCodeByPhone(phone);
    }

    /**
     * 根据qq邮箱账号发送验证码 （前端展示）
     * todo 白
     * lzy 2022-8-2 14点28分
     * @param mail
     * @return
     */
    @GetMapping("/sendCodeByQQMail")
    public CommonResult sendCodeByQQMail(String mail){
        return loginService.sendCodeByQQMail(mail);
    }

    /**
     * 根据邮箱登录（前端展示）
     * todo 白
     * lzy 2022-8-2 14点28分
     * @param mail
     * @param code
     * @return
     */
    @GetMapping("/loginByQQCode")
    public CommonResult loginByQQCode(String mail, String code){
        return loginService.loginByQQCode(mail,code);
    }


}
